iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0
佛心分享-SideProject30

門外漢的嵌入式地獄系列 第 15

Day 15 。初入嵌入式開發-Linux Kernel 說明

  • 分享至 

  • xImage
  •  

Linux 說明

簡介

Linux Kernel 是我們啟動的最後一個步驟,在這個步驟我們需要去掛載 roofs , bootfs ,還有設備樹的設置,只有當設備樹都正確配置後,我們的板子所有的周邊設備才能正確地運作。最後我們才可以去開發Driver 等等。

例如我們常見的 ETH , I2C , SPI 等等,所有的通訊界面都會是在這邊做配置,而前面的三個階段 tf-a , optee , uboot ,則是依照需要來去做設定,例如電源IC 跟 I2C 假如在 tf-a 階段需要的話,則需要去配置他。

Linux kernel負責控制主機的所有硬體並提供系統所需要的功能,開機的時候,利用開機管理程式啟動kernel來偵測硬體並載入適當的驅動程式,這樣系統才可以順利的運作。

在開機服務當中又會分為兩種 , sysD 與 sysV 兩種差異可以上網搜尋一下。

主要 sysV 透過腳本的方式,並且是有序的去啟動。sysD 則是導入了 service 概念,並且可以實現進程保護。將每一個所需要的功能編寫成一個 .service 檔案,來去做管理與使用。

檔案說明

幫我們輸入指令從遠端倉庫拉下 linux-kernel 的檔案後會向下圖這樣,一剛開始我們最常需要修改的會是 devicetree。

devtool modify linux-stm32mp
# 這個指令會從遠端拉下 stm32mp 所建置的 kernel 檔案
# 後續我們就可以透過這包檔案修改,並且最後存成 patch 編譯使用。

https://ithelp.ithome.com.tw/upload/images/20240806/20146325KgCjmtth7A.png

devicetree 所在的位置在 arch/arm/boot/dts 底下,這邊除了 st 的 dts 以外 ,常見的MPU的dts 也會存放在這。

https://ithelp.ithome.com.tw/upload/images/20240806/20146325tQTRw1JO45.png

# 當我們修改完檔案,或是希望回歸到未修改的狀態,可以輸入下方指令。
# 會將 workspace / source 底下相關的檔案給清除
devtool reset linux-st32mp

後續會在說明有關 dts 的語法等等,這篇文章主要說明如何去拉遠端檔案,以及用途跟相關檔案位置。


上一篇
Day 14 。初入嵌入式開發- Uboot說明 (二)
下一篇
Day 16 。初入嵌入式開發-設備樹 (上)
系列文
門外漢的嵌入式地獄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言